package challenge.计挑模拟赛;

import java.util.Scanner;


public class D{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), l = sc.nextInt();
        int x = sc.nextInt(), y = sc.nextInt(), z = sc.nextInt();
        //前缀和
        int[][] sums = new int[n + 1][3];
        boolean b1, b2, b3;
        for(int i = 1; i <= n; i++){
            for(int j = 0; j < 3; j++){
                sums[i][j] = sums[i - 1][j];
            }
            b1 = i % x == 0 && i % y == 0;
            b2 = i % y == 0 && i % z == 0;
            b3 = i % x == 0 && i % z == 0;
            if(b1){
                sums[i][0] += 9;
            }
            if(b2){
                sums[i][1] += 3;
            }
            if(b3){
                sums[i][2] += 1;
            }
            //初始每个用户有一张4星卡
            sums[i][2]++;
        }
        int res = -1;
        //滑动窗口
        for(int i = 0; i + l <= n; i++){
            res = Math.max(res, Math.abs(sums[i + l][0] - sums[i][0]
                    - (sums[i + l][1] - sums[i][1])
                    - (sums[i + l][2] - sums[i][2])));
        }
        System.out.println(res);
    }
    /*
    1 2 3
    0 1 3 6
     */
}
/*
19.某游戏公司设计了一个奖励活动，给N个用户(1≤N≤10^7)连续编号为1到N，依据用户的编号S发放奖励。
首先给每个用户发放1张4星卡片。
然后公司设定三个非零正整数x，y，z,
如果S同时是x、y的倍数，额外奖励9张2星卡片;
如果S同时是y、z的倍数，额外奖励3张3星卡片；
如果S同时是x、z的倍数，额外奖励1张4星卡片；
多个奖励可以累计获取。
求任意连续的L个用户，使得这L个用户得到的2星卡数量和 和 这L个用户得到的3星卡、4星卡数量总和 的
差值绝对值最大，输出该最大的差值绝对值。
输入说明：第一行，输入N，L，以空格隔开；(1<L<N≤10^7)
第二行，输入x，y，z，以空格隔开；(1≤s,x,y,z≤L)
输出说明：符合条件的差值绝对值。
输入样例：40 7
3 5 2
输出样例：12

 */
